var express = require('express');
var router = express.Router();
var feedbackDao = require('../dao/feedback');
var AdminToken = require('../db/user_tokens');
var feedbackRoutes = module.exports;

/**
 * 反馈信息列表
 * @param  token
 * @param  page
 * @param  size
 *         url/feedback/list
 */
feedbackRoutes.list = function(req, res) {
    var par = paramAll(req);
    par.size = !par.size ? 10 : parseInt(par.size);
    par.start = !par.page ? 0 : par.start = (parseInt(par.page) - 1) * parseInt(par.size);
    AdminToken.checkAdminLogin(par.token, null, function(err, errCode, adminInfo) {
        if(err) return  res.json(new ERR(err, errCode));
        feedbackDao.list(par, function(err, result) {
            if(err) return res.json(new ERR(err, 400));
            res.json(new PKG(result));
        })
    });
}
router.post('/list', feedbackRoutes.list);

/**
 * 用户反馈
 * @param  openid
 * @param  avatar
 * @param  nick
 * @param  content
 *         url/feedback/feed
 */
feedbackRoutes.feed = function(req, res) {
    var par = paramAll(req);
    if(!par.openid) return res.json(new ERR('openid不为空！', 400));
    if(!par.avatar) return res.json(new ERR('avatar不为空！', 400));
    if(!par.nick) return res.json(new ERR('nick不为空！', 400));
    if(!par.content) return res.json(new ERR('content不为空！', 400));
    feedbackDao.feed(par, function(err, result) {
        if(err) return res.json(new ERR(err, 400));
        res.json(new PKG(result));
    })
}
router.post('/feed', feedbackRoutes.feed);

/**
 * 管理员处理反馈信息
 * @param  token
 * @param  id
 * @param  status
 *         url/feedback/updateStatus
 */
feedbackRoutes.updateStatus = function(req, res) {
    var par = paramAll(req);
    if(!par.id) return res.json(new ERR('id不为空！', 400));
    if(!par.status) return res.json(new ERR('status不为空！', 400));
    AdminToken.checkAdminLogin(par.token, null, function(err, errCode, adminInfo) {
        if(err) return  res.json(new ERR(err, errCode));
        feedbackDao.updateStatus(par, function(err, result) {
            if(err) return res.json(new ERR(err, 400));
            res.json(new PKG(result));
        })
    });
}
router.post('/updateStatus', feedbackRoutes.updateStatus);

module.exports = router;